#pragma once

#include "tensor.h"

namespace uzu
{
    void SequentialScan(Tensor& input, Tensor& output);
    void KoggeStoneScan(Tensor& input, Tensor& output);

    // reduction with 2-stage gpu accumulation
    float ReduceSum(Tensor& input);
    float ReductSumCpu(Tensor& input);

    // simple solution with cpu accumulation
    float ReduceSum(float* data, int size);
    float ReduceSumCpu(float* data, int size);
}
